Skip to content

Bump k8s.io/* deps to v1.35 - #576

Merged
friegger merged 4 commits into
ironcore-dev:mainfrom
opensovereigncloud:osc/feat/bump-k8s-1.35
Jun 12, 2026
Merged

Bump k8s.io/* deps to v1.35#576
friegger merged 4 commits into
ironcore-dev:mainfrom
opensovereigncloud:osc/feat/bump-k8s-1.35

Conversation

@Rohit-0505

@Rohit-0505 Rohit-0505 commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Proposed Changes

  • Bump k8s.io/* to v1.35 and controller-runtime to v.23.3
  • Bump ironcore v0.4.1
  • Bump controller-utils v0.12.0
  • Fix deprecated client.Patch() with client.Apply() that uses applyconfig types

Summary by CodeRabbit

  • Chores

    • Updated Go toolchain to 1.25.1 and upgraded direct and indirect dependencies (core modules, Kubernetes-related packages, gRPC/protobuf, etc.) for compatibility and security.
  • Tests

    • Test environment now uses Kubernetes control-plane 1.35.0.
  • Refactor

    • Reworked load balancer reconciliation and routing flow for more reliable provisioning and clearer operational behavior.

@Rohit-0505
Rohit-0505 requested a review from a team June 1, 2026 06:46
@github-actions github-actions Bot added the size/L label Jun 1, 2026
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Bumps Go and dependency versions, refactors EnsureLoadBalancer and LoadBalancerRouting to use apply-configuration Apply calls, updates tests to use pointer booleans for owner refs, and bumps envtest Kubernetes version to 1.35.0.

Changes

Load balancer refactoring with dependency updates

Layer / File(s) Summary
Go module and dependency updates
go.mod
Go toolchain advanced to 1.25.1. Direct and indirect dependencies updated (controller-utils, ironcore, k8s.io/, controller-runtime, etcd, google.golang.org/, golang.org/x/, sigs.k8s.io/).
Apply-configuration imports added
pkg/cloudprovider/ironcore/load_balancer.go
Add IronCore client-go apply-configuration imports for IPAM, networking, and metav1 to enable Apply-based resources.
EnsureLoadBalancer refactor
pkg/cloudprovider/ironcore/load_balancer.go
Compute desired LB type, reconcile/delete existing LB on type mismatch, build LoadBalancerApplyConfiguration, and Apply it; fetch applied LB before applying routing when NIC selector is disabled.
Load balancer routing Apply refactor
pkg/cloudprovider/ironcore/load_balancer.go
Build LoadBalancerRoutingApplyConfiguration with owner refs, network UID ref, and destinations, then Apply instead of patching constructed objects.
Test OwnerReference pointer updates
pkg/cloudprovider/ironcore/load_balancer_test.go
Import k8s.io/utils/ptr and update multiple test assertions to use ptr.To(true) for metav1.OwnerReference Controller and BlockOwnerDeletion.
Test envtest Kubernetes version update
pkg/cloudprovider/ironcore/suite_test.go
Envtest BinaryAssetsDirectory version identifier updated from 1.34.0 to 1.35.0.

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Bump k8s.io/* deps to v1.35' directly reflects the main change—upgrading Kubernetes dependencies to v1.35—and is clear, concise, and specific.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The pull request description covers all main changes and follows the template structure with bullet points for proposed changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@go.mod`:
- Around line 12-19: The go.mod lists mixed Kubernetes minor versions; change
the direct module entries for k8s.io/cloud-provider and
k8s.io/controller-manager to the same v0.35.x line used by the other k8s.io
modules (e.g., v0.35.3) so all k8s.io/* dependencies share the same minor, then
update/sync modules with your Go tooling (module download/tidy) to ensure the
lockfile and transitive deps are consistent; target the symbols
k8s.io/cloud-provider and k8s.io/controller-manager when making the edits.

In `@pkg/cloudprovider/ironcore/load_balancer.go`:
- Around line 212-239: The internal LoadBalancer IP allocation hardcodes
v1.IPv4Protocol; change the logic where spec.WithIPs(...) is built (inside the
loadBalancerType == networkingv1alpha1 block) to derive the PrefixSpec IP family
from service.Spec.IPFamilies instead of hardcoding IPv4: validate
service.Spec.IPFamilies (e.g., ensure at least one family, reject unsupported
dual-stack combinations or choose a deterministic family like the first entry),
map v1.IPv4Protocol/v1.IPv6Protocol appropriately and pass that value to
ipamv1alpha1ac.PrefixSpec().WithIPFamily rather than using v1.IPv4Protocol,
keeping existing checks for o.cloudConfig.PrefixName and the rest of the
EphemeralPrefixSource construction.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0cc0f912-ada1-403c-8627-08c956c7fba5

📥 Commits

Reviewing files that changed from the base of the PR and between a98337d and 48a2b01.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (3)
  • go.mod
  • pkg/cloudprovider/ironcore/load_balancer.go
  • pkg/cloudprovider/ironcore/suite_test.go

Comment thread go.mod
Comment thread pkg/cloudprovider/ironcore/load_balancer.go

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pkg/cloudprovider/ironcore/load_balancer.go`:
- Around line 350-356: The OwnerReference built with metav1ac.OwnerReference()
only sets APIVersion/Kind/Name/UID and must include Controller and
BlockOwnerDeletion set to true to match the prior controller reference behavior;
update the builder chain where metav1ac.OwnerReference() is used (the current
WithAPIVersion(...).WithKind("LoadBalancer").WithName(loadBalancer.Name).WithUID(loadBalancer.UID)
block) to also set Controller and BlockOwnerDeletion to true (use the
appropriate WithController(...) and WithBlockOwnerDeletion(...) builder methods
or supply pointer bools as the apply-config expects) so the resulting reference
is a controller owner reference and enables block owner deletion.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 02413a0e-0268-47dd-b0f3-01e08961f59a

📥 Commits

Reviewing files that changed from the base of the PR and between 48a2b01 and 282d144.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (2)
  • pkg/cloudprovider/ironcore/load_balancer.go
  • pkg/cloudprovider/ironcore/suite_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/cloudprovider/ironcore/suite_test.go

Comment thread pkg/cloudprovider/ironcore/load_balancer.go
Signed-off-by: Rohit Kumar <rohit.1si09ee045@gmail.com>
Signed-off-by: Rohit Kumar <rohit.1si09ee045@gmail.com>
Signed-off-by: Rohit Kumar <rohit.1si09ee045@gmail.com>
@github-actions github-actions Bot added size/XL and removed size/L labels Jun 1, 2026
@afritzler afritzler changed the title Bump k8s.io/* deps to v1.35 Bump k8s.io/* deps to v1.35 Jun 3, 2026
Comment thread go.mod Outdated
Signed-off-by: Rohit Kumar <rohit.1si09ee045@gmail.com>
@friegger
friegger merged commit 7677dfc into ironcore-dev:main Jun 12, 2026
12 of 13 checks passed
@afritzler afritzler added the enhancement New feature or request label Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants